package com.ark.utils;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;

/**
 * json转换类工具
 * @author dyz
 * @date 2025/4/10 15:06
 */
public class GsonUtil {
    private static final Gson gson = new Gson();
    /**
     * 将java对象转换为json串
     * @param obj 转换对象
     * @return json串
     */
    public static String toJson(Object obj) {
        return gson.toJson(obj);
    }

    /**
     * 将 JSON 字符串转换为指定类型的列表
     * @param json JSON 字符串
     * @param clazz 列表元素的类类型
     * @param <T> 泛型类型
     * @return 转换后的列表
     */
    public static <T> List<T> fromJsonToList(String json, Class<T> clazz) {
        Type type = TypeToken.getParameterized(List.class, clazz).getType();
        return gson.fromJson(json, type);
    }

}
